<?php

/**
 * @author HERON
 * @brief Classe parente des contrôlleurs
 */
abstract class BaseController {
	
	
	abstract function index($params="");
	
	
	public function __construct(){
		if(!$this->isValid())
			$this->onInvalidControl();
	}
	
	
	
	/**
	 * @param string $viewName Le nom de la vue à charger
	 * @param string $pData La chaine de charactère à ajouter à la requète SQL
	 * @throws Exception Si la vue n'existe pas
	 * @brief Charge une vue
	 * @details Charge la vue dont le nom est passer en paramêtre
	 */
	public function loadView($viewName,$pData=""){
		$data=$pData;
		$fileName="views/".$viewName.".php";
		if(file_exists($fileName)){
			include($fileName);
		}else{
			throw new Exception("Vue inexistante");
		}
	}
	
	
	
	/**
	 * retourne Vrai si l'accès au contrôleur est autorisé
	 * @return boolean
	 */
	public function isValid(){
			return true;
	}
	
	
	
	public function onInvalidControl(){
		header('HTTP/1.1 401 Unauthorized', true, 401);
		exit;
	}
}
?>
